Suspension and restart of input/output operations

ABSTRACT

An input/output subsystem in which a peripheral device controller controls the device in response to commands received from an input/output (I/O) channel which is connected to a processor. A channel address word (CAW) and a sequence of channel command words (CCW&#39;&#39;s) are fetched from a main memory and executed by the I/O channel. If a delay condition such as a paging fault in a virtual memory occurs, the channel signals the device controller over an interface. In response to the signal, the device controller turns on a suspend latch and sets zero status which is returned to the I/O channel. After the paging fault or the delay condition has been corrected by the processor, the channel operation is continued by issuing a restart I/O instruction. In executing the restart I/O instruction, the channel turns on a restart latch and validates the previous CCW and CAW fetches. The channel program starts at the point where a command is gated to the device and since the restart latch is on, a command of zero is gated. A command of zero received at the I/O controller plus the condition that the suspend latch is on, causes the controller to resume the suspended operation at the point where it was discontinued. Since the previous CCW and CAW fetch have been validated, the control unit operation reenters the channel program at the point of suspension.

United States Patent Cormier Aug. 5, 1975 SUSPENSION AND RESTART OF INPUT/OUTPUT OPERATIONS Primary Eraminer-Raulfe B. Zache Assistant Examiner-Jan E. Rhoads Attorney, Agent, or FirmRobert Lieber [57] ABSTRACT An input/output subsystem in which a peripheral device controller controls the device in response to commands received from an input/output (1/0) channel which is connected to a processor. A channel address word (CAW) and a sequence of channel command words (CCWs) a e fetched from a main memory and executed by the I/O channel. If a delay condition such as a paging fault in a virtual memory occurs, the channel signals the device controller over an interface. ln response to the signal, the device controller turns on a suspend latch and sets zero status which is returned to the [/0 channel. After the paging fault or the delay condition has been corrected by the processor, the channel operation is continued by issuing a restart I/O instruction. ln executing the restart l/O instruction, the channel turns on a restart latch and validates the previous CCW and CAW fetches. The channel program starts at the point where a command is gated to the device and since the restart latch is on, a command of zero is gated. A command of zero received at the I/O controller plus the condition that the suspend latch is on, causes the controller to resume the suspended operation at the point where it was discontinued. Since the previous CCW and CAW fetch have been validated, the control unit operation reenters the channel program at the point of suspension.

7 Claims, 20 Drawing Figures f" T EL 4 cm) 409 l ggg gggllgfim EXECUTION 1/0 u 0 CONTROLS ADDR l Tm t DEVICE DEV'CE tggg & l mrsmcr 405. "1 no UNIT I W 3 402 404 r 1 ADDRESS? l l um t l U D "commits ZERO 0M0 SELECTION .W A ESS. N PRQCESSQR ump GATE STATUS TO BUS IN 0 l t a answer DATA H CHANNEL SEQUENCE cm om CONTROLS DROP ADRN|HW nuyw. l PS/l l s.:? 50 l I J finite;- DROP svc m l l ElfiiT-Ilj: l, M SUSPEND l ll n 0pm l a um ,SET ZERO swus 1W EULQL 1 STAIUSV L QPR ma 3} smus l L GENERATOR N SUSB N SENSE SENSE t 4..-... RESUME SUSPENDED l RESUME f READ/WRITE ,zERocMD SUSPENDED w, onog gga l CONTROLS OPERATlON 0M0 Olll m2 s gLzifio stttus j 448 PATENTED AM; 51975 F l G. 2

PRIOR ART (BEAUSOLEIL ET AL 5,556,582

FIG 5M) ADDRESS IN RESUME SUSPENDED OPERATION &

DATA XFER SEQ,

0P ADD IDR I IDD ns DLY 1 MD DUT SUSPEND DMD DUT ZERO OMD l GATE ADDRESS T0 BUS IN ADDRESS OUT PRI DR ART Fl 3 BEAUSDLEIL ET AL 5,556,582 FIGSSN) DATA XFER SEQ N m E E C C D I W S N V DH U [L 6 S A S I 8 TI U DI S S 0 a R m D E M Z T E s I 0 D 6 [LC Dlr I. 0 0 SA ULS R 5 I 0 0Q w 0G 0G 06 s A E GM NI AR S HP n Y I. C T.. 0 D 0 A A T m A 6 D S O W U A B [L T P N 0 T U 0 R W T U 0 A n o r 0 T w m N F D A E U N U E C 0 Y U D m 0 R B D E v D 0| 0 O R TI A T R P B M CL U E N A E C U 7.

CONTINUE CHANNEL OPERATION PATENTENAOO 51975 3.898.623

sNEET 3 F|G.4 CHANNEL OPERATION PRIOR ART (KING ET AL 3,488,633) 200 CHANGES CPU INSTRUCTION OEOOOE REsTART START I/O OR TEsT I/O INSTRUCTION 1/0 (FIGOB) (FTOO) V I POLLING OPERAT|ON (Fm) 2O2 REsTART 1/0 N no REsTART LATCH I no Ocw VALID CAW FETCH & T/O OAw VALID (Fl G.8) CCW FETCH (T|OO)* OATE UNIT ADDRESS T0 BUS OOTTHOOH 206 7 CHECK BUS OOTA TuRN ON sELE T 0UT(F|G.|0

2OO Y cow VALID& NO ERRORS (FIGM) 24O m an OPERATION gfi f g lg GATE CMD TO B.0. ZERO To 80 F|O.T2) (FIG IF DELAY CONDITION FOR STATUS FROM OvO IS ZERO 'NFORMAT'ON INTERRUPT PROCESSOR PATENTEUAUB SIS S 3.898623 SIIEET 4 FIG. 5 OOIIITROI IIIIIT OPERATION PRIOR ART BEAUSOLEIL ET AL 5,336,582

1 CHANGES IIII TIA r SELECTION REOEIvE ADDRESS (F I G I 5) \ZSO IT SDSPEIID IATOII @EOEIVE CMD(F|G.1\6) T 252 OP I I 264 I GATE STATuS BYTE TO DOS IN RAISE STA TuS IAI. AFTER STATUS IS ACCEPTED BY CHANNEL DROP STATuS IN IEIDIT) I 2S4 ZERO STATuS DURING INITIAL SELECTION SEQUENCE (H018)! IE SUP OuT RAISE SVC III FOR DATA xEER IEIOI 9) IF CMD OUT & SUP DATA TRANSFER OUT ARE UP TURN I SEOOEIIOE (FIG.20) 0N SUSPEND LATSCH SET ZERO STATII 2SO AUG 5 I975 I 2 PAIENIEI] SHEET R ART ET AL FIG. I6]

POL L I NB 5I4 FI 6.7 RELEASE T0 CPU PATENTEU AUG 51975 FIG.

PRIOR ART (KING ET AL FIGJSA) POLLING FIGAG T- F SL 0 START 0R TEST 1/0 (LTH 1 YES NO 5L I YES A ;F|G8

START I/O'NOT SL-I T/O START /524 1/0 LTH T TEST I/O-NOT SL-I 526 no TEST 1 1/0 L TH T-O POLLING 528 INTERRUPT TGR AD-I a PI T RST CHANNEL STATUS T P T PROCEED CHANNEL STATUS T0 CPU 90 (FIGIBAT KING ET AL) PAIENIEU 5I975 3.898.623

SL-lZiI 7 F l G. 8

PRIOR ART 556 I KING ET AL FIG 16B) msTAucTmN CHANGES To PRIOR ART I R ESTART 1/0 558 I I I I 542 544 I I I. START o LTH s ART N/ I/ I T 1/0 LTH) 0T I START m I [5L I+ IPIT- sT-1)] cow VALIDXNOT T/C GCY) I RESET CAR GATE uA BUS no RESIN" 540 no cow FETCH (CAW) T0 UAR I I I I 541 I 550 I I (cow FETCH) I T/O ccw VALID (NOT TIC CYCLE) L GATE CA-I T0 ADD (sou RESPHNOT cow VALID (NOT m cm sTART 1/0 LTH) 55 CAW RESET T/o SETUP SETUP 554 FIGI9 PATENTEUAUE FIG. 9

SHEET 0 START 0R TEST 1 0 CHAIN 0M0 W F I 6.8 SE T UP SET UP GT u RU B T/O co T/F SL- SETUP LU UH no SEL 1/0 CLOCK 560 TH PIT START m T 562 Yas W 1/0 0P- I i N0 00 564 T SE T UP RESE T LON" YES I ses SET UP TJ P I T0 W 551 UP 0P I T4 T5 566 T F cow VALID T/O AD 0 U0 ccw FETCH NOT cow VALID T/F GATE 0M0 695 LTH (RD w R "EM Fl 6 1O PATENTEU |9Y5 SHEET 9 PRIOR ART FIG. 0 (KING ET AL H0160) ERROR so PARITY ERROR 570 f we CHAN CTRL CHK T/U MACH CHK MACH CHK W MACH CHK W0 5H) 57? BLOCK SL-O 100A FETCH 154 BLOCK CC W T/O SEO 5 r (SETUP)(AD-0 SL-O (SL-I)- (cc LTH J T/O INTERFACE CTRL GK 1 T 1/0 0R cow VALID PROG CHK 0R MACH CHK GT AU-I AND SAMPLE FOR NO SEL AND I SE0 5 AD- I GT LINE GT AD- I 620 9 PATENTEI] AUG 5|975 FIG.H

PRIOR ART I KING ET AL FIG. I6F) PREV I 0 U S ERROR IN CHANNEL BLOCK SENDING COMM T0 B0 3,898,623 SHEET (SET UP) (0P I) (AD -I GATED) T/I] CLOCK ,sza

TI, AD I GATED SET UP ADD MISMATCH T/O IF CTRL CIIK T/U MACH CHK T/O SE0 5 ADUR COM PARE TEST I/O T/F SET UP SHEET 1 1 FIGH FIG. 12

PRIOR ART ADDR ooRP-ccw (KING ET AL FIG, 16G) VALID R0 ERRORS 658 UP SETUP T/F CLOCK 640 TUP RD/WR WT GT RD/WR LTH l CHANGES T0 RESTART PRIOR ART 1 LTH 645 N0 RD/WR LTH, AD-I GATED R w e42 AD I I ZERO T0 B0 er comm T0 80 U0 CLOCK T/O CLOCK 644 T0 T4 SETUP S1 & 82 GT DAB CT T0 ADDR SAMPLE B0 PARITY ERROR LTH ADDE'R RD/WR 51+ 32 T4 T5 652 GT ADDER To CT PARITY ERROR 0R YES ADDER ERROR 650 654 T/O 0H CTRL CHK T/O MACH CH K T/O SE0 5 656 (AO-I )(TT RAISE C0 TAG FIG 15 SEE Fl 6. 16H 0F 5 KING ET AL PATENTEO 5I975 F l G. 1 3

PRIOR ART (KING ET AL FIC I65) YES WAIT FOR ST-T READ T/O WLR LTH TS-CC FLAG-NOT INTERRUPT STATUS SLT S2 T/O CHAIN CMD LTH CORRECT TIIE COUNT 6 U PDATE c L H NOT SILI INTRPT smus CT COMP 80 AND CTI TO AODER I T/O INTERRUPT I r I 3 SEE 0 GATE INTRPT FIOICW CLOCK SR0 KING ETAI.

SEE 835 K I N G E T AL 855' I I T5 NOT T7 T5 NOT T6 LT ADDER CT GI E Q CT PATENTEI] M16 5'97?) FIG.14

CHANGES TO PRIOR ART SHEET RAISE COMMAND OUT AND SUPPRESS OUT 1/0 INTERRUPT (DELAY common) SEE newew KING ET AL PATENTEDAUE 5W5 FIG.I5

PRIOR ART (BEAUFULEJL ET AL FIG 1C) RAISE DPERATlDNAL DEVICE ADDRESS TD BUS IN POLLING & INITIAL SELECTION (FIGS. 4A a 4B OF BEAUSOLEIL ET AL COMMAND BYTE TD BUS OUT DROP V ADDRESS OUT ADDRESS DUT SUPPRESS OUT DRDP SUPPRESS DUT PATENTED AUG 5 I975 FIG PRIOR ART BEA USOLEI L ET AL FIG 4 E TURN OFF SUSPEND LTH RESUME SUSPENDED OP R SET ZERO STATUS CHANGES TO PRIOR ART DROP ADR IN YES ADR-IN DROP OM D OUT PATENTEU 5|975 SHEET 16 FIGJG J FIG. 4 7

PRIOR ART 220 smus (BEAUSOLEIL ET AL H046) BYTE T0 BUS-IN RAISE 225 STA-IN SE 0UT NSEC DROP 25: RAISE LAY SUP-OUT cum-om zm.

PATENTED 51975 3.898,623

SHEET 1? FIGJB PRIOR ART (BEAUSOLEIL ET AL H6741) PATENTEDAUG 51975 3, 898.623

SHEET 18 FIG. 19 FlfiiG PRIOR ART (BEAUSOLEIL ETAL FIG.4H)

DATA BYTE T0 BUS- IN NO I CONTINUE DATA SUPRESSION DROP YES SUP-OUT M DATA BYTE RAISE T0 CHD-OUT BUS-OUT I 100 NS FIG. 20

DELAY I RAISE SRV-OUT FIG20 PATENTEU E 1975 PRIOR ARHBEAUSOLEIL ET AL FIGOJ) I SET SUSPEND LTH AND ZERO STATUS 192- c GES TO R ART SUPPRES NEXTDAT RAISE SUPPRESS OUT 

1. In an input/output control mechanism including a channel and a control unit, said channel including means for executing a start I/O instruction to initiate a particular I/O operation the improvement comprising: means at said control unit for registering a manifestation indicating that an I/O operation is suspended to thereby hold said control unit in a suspended state; means in said channel for executing a restart instruction whereby said channel is set in such a state that said channel can resume the I/O operation; means at said channel for sending a predetermined command to said control unit to resume said operation; and means at said control unit operative in response to said predetermined command and to said registering means for resuming said input/output operation at the point of suspension, whereby a previously started I/O operation may be suspended during the execution of a channel program upon the occurrence of some condition requiring a delay before the operation can be continued.
 2. The combination according to claim 1 wherein said channel includes means for signalling said control unit that said I/O operation is to be suspended and wherein said registering means responds to said signalling means for placing said control unit in said suspended state.
 3. In an input/output control mechanism, including a channel and a control unit, in which a previously started I/O operation started by executing a start I/O instruction within a main program is suspended during the execution of a channel program upon the occurrence of some condition requiring a delay before the operation can be continued, said channel including means for signalling said control unit that said operation is to be suspended, the inprovement comprising: means at said control unit responsive to said signalling means for registering a manifestation indicating that the I/O operation is suspended to thereby hold said control unit in a suspended state until said channel receives an instruction from the main program to restart the operation; means in said channel for decoding a restart instruction and for setting said channel in such a state that said channel can resume the I/O operation; means at said channel for selecting and addressing said control unit and for sending said control unit a predetermined command; and means at said control unit connected to said registering means operative upon receipt of said command and in response to said manifestation indicating the previously retained suspended condition for resuming said input/output operation at the point of suspension.
 4. For use with a channel of the type in which an input/output operation is started by a first instruction, including means in said channel for signalling to indicate suspension of said operation and means in said channel for executing a second instruction for restarting said operation; a control unit comprising: means responsive to commands received from said channel for executing said commands to control a device; means responsive to the signalling means in said channel for registering a manifestation indicating that said operation is to be suspended; means for resuming the execution of said command; and means responsive to said registering means and a command received from said channel during the execution of said second instruction for generating a signal for resuming said suspended operation.
 5. For use with a channel of the type in which input/output operations are carreid out in response to a channel program comprised of a list of channel command words (CCW''s) obtained by said channel from a storage, and in which address means in said channel specify the address of a CCW in said storage; said channel including means for executing a start I/O instruction to intitiate a particular I/O operation; further means in said channel for signalling to indicate suspension of said operation; and means in said channel for executing a restart instruction for restarting the suspended operation and for sending a predetermined command, a control unit comprising: command execution control means responsive to commands received from said channel for executing said commands to control a device, said control means including means for suspending and resuming the execution of said commands; means at said control unit responsive to the signalling means in said channel for registering a manifestation indicating that said operation is suspended; and means responsive to said registering means and said predetermined command received from said channel for resuming said suspended operation.
 6. For use with controlling apparatus capable of executing a start I/O instruction for initiating an I/O operation in a peripheral device, a peripheral device controller comprising in combination: suspend latch and control means; selection logic means adapted to connect said controller to said controlling apparatus for receiving commands and control signals from said controlling apparatus; command execution control means connected to said selection logic means responsive to commands from said controlling apparatus for effecting an I/O operation; said suspended latch and control means responsive to said selection logic means for initiating suspension of said I/O operation in response to control signals from said controlling apparatus and resume suspended operation control means connected to said selection logic means, responsive to said selection logic means for initiating the resumption of a suspended I/O operation in response to a command from said controlling apparatus and signals received from said selection logic means.
 7. For use with controlling apparatus capable of executing a start I/O instruction for initiating an I/O operation in a peripheral device, a peripheral device controller comprising in combination: status generating means; suspend latch and control means; selection logic means adapted to connect said controller to said controlling apparatus for receiving commands and control signals from said controlling apparatus; command execution control means connected to said selection logic means responsive to commands from said controlling apparatus for effecting an I/O operation; means at said status generating means responsive to signals from said command execution control means and from said suspend latch and control means for indicating to said controlling apparatus the status of said peripheral device controller; said suspend latch and control means responsive to said selection logic means for initiating suspension of said I/O operation in response to control signals from said controlling apparatus and for setting zero status in said status generating means; resume suspended operation control means connected to said selection logic means, responsive to said selection logic means and a command from said controlling apparatus for initiative the resumption of a suspended operation in response to said command and signals received from said selection logic and sequence control means; and means connected to said status generating means and said selection logic means responsive to said selection logic means for supplying said status indicia to said controlling apparatus. 